package com.coolingme.general;

/**
 * 抽象：该类一般持有一个对现实角色的引用（接口或抽象类），
 * 抽象角色中的方法需要实现角色来实现。
 * <p>
 * 抽象角色一般为抽象类（构造函数规定要传入一个实现对象）
 *
 * @author wangyue
 * @date 2020-09-20 17:02
 */
public abstract class Abstraction {

    /**
     * 实现角色
     */
    protected Implementor implementor;

    public Abstraction(Implementor implementor) {
        this.implementor = implementor;
    }

    /**
     * 抽象角色中的方法需要实现角色来实现
     */
    public void operation() {
        this.implementor.operation();
    }
}
